<?php
namespace Org\Util;
class bigmoney{
    //$type1代收业务
    //$packetnos批次号 当type为4时只传整个批次号,,不为4时传后5为从00001开始
    //$num银行账号
    //$name姓名
    //$hanghao行号
    //$money金额保留2位小数
    //$addr地址可为空
    public function index($type,$packetnos,$hanghao,$num,$name,$money,$addr=''){
            $corpno='35077960-8';//企业编号
            $password=md5('123456');//登陆密码md5加密
            switch ($type) {
                case 1:
                        $purpose ='99002';

                    break;
                case 2:

                        $purpose ='99003';
                    break;
                case 3:

                        $purpose ='99004';
                    break;
                case 4:

                        $purpose ='99005';
                    break;
                default:
                        $purpose='';
                    break;
            }
            if($purpose==''){
                return false;
            }
                        //报文种类
                         //99001：检查用户名、密码合法性（暂时不能用）
                         //99002：发送业务报文
                         //99003：发送已收到回执但未下载过的提回报文查询 
                         //99004：发送本批次所有收到回执的报文 
                         //99005：企业提回报文下载
            if($purpose=="99005"){
                $packetno=$packetnos;
//                $packetno= date("Ymd", time())."2210".$corpno."00002".'_00000001';//99005要加子集号
            }else{
                $packetno= date("Ymd", time())."2210".$corpno.$packetnos;//批次号格式：日期（8位：yyyyMMdd)+中心代码（4位：如沈阳2210）+企业机构代码（10位） + 流水号（5位）
            }
            $sendtime= date("YmdHis", time());//发送时间 yyyyMMddHHmmss格式
            $category='50502';//业务类型 
                 //40501：定期代付；
                 //40502：定期代收；
                 //40507：协议上传；
                 //40508：帐号状态查询；
                 //50501：实时代付；
                 //50502：实时代收；

            //汇总信息
            $no="307221020038";//公司开户行行号
            $zh="11015479392004";//公司账户
            if($money<=0){
                return false;
            }
            $money=  sprintf("%0.2f",$money)*100;
            $totalmoney=$money;//收款总金额
            $tot=$category.",".$corpno.",".$packetno.","."00".",".$no.",".$zh.","."00604".",".$totalmoney.","."1".",";

            //明细信息
            $br="\r\n";
            $fzh=$num;//付款人账号
            $fname=$name;//付款人姓名
            $faddr=$addr;//付款人联系方式
            $fmoney=$money;//付款金额
            $xyno="00000000000000000000000000000";//协议号
            $mingxi="00000001".",".$hanghao.","."$fzh".",".iconv("UTF-8","GBK",$fname).",".iconv("UTF-8","GBK",$faddr).",".$fmoney.",".$xyno.",".iconv("UTF-8","GBK","附言").",";

            $str=$mingxi.$br.$tot;
            //        echo $str;
            $packetbase64=  base64_encode($str);//报文内容,BASE64格式加密

        if($purpose=='99002'){
            $signyu=$corpno.'|'.$password.'|'.$purpose.'|'.$packetno.'|'.$sendtime.'|'.$category.'|'.$packetbase64.'|';
        }else{
            $signyu=$corpno.'|'.$password.'|'.$purpose.'|'.$packetno.'|'.$sendtime.'|'.$category.'|';
        }
        //调用JAVA验签操作CURL方式

    //    $curlPost=array(
    //        'key'=>'ivfbb',
    //        'sign'=>$str
    //    );
        $curlPost="key=ivfbb&sign=".$signyu;
        $url = 'http://139.196.5.206:82/WebApplication1/test';
                $ch = curl_init();//初始化curl
                curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页
                curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
                curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
                curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
                $data = curl_exec($ch);//运行curl
                curl_close($ch);




        if($data=='1'||$data=='2'||$data=='3'||$data==null){
            return false;
        }
        $sign=$data;//签名 使用CFCA证书签名 签名域为企业编号、企业密码MD5、报文种类、批次号、发送时间、业务类型，
                 //中间以竖线（|）分隔，末尾以竖线结束
        $client = new \SoapClient("http://www.sybesc.cn/services/client?wsdl");
        $opt=array(
                    'in0'=>$corpno,
                    'in1'=>$password,
                    'in2'=>$purpose,
                    'in3'=>$packetno,
                    'in4'=>$sendtime,
                    'in5'=>$category,
                    'in6'=>$sign,
                    'in7'=>$packetbase64,
                );

        $result = $client->rcvClient($opt);
        $arr=explode(";", $result->out);
        return $arr;
    }
    
//    public function test(){
//        $corpno='35077960-8';//企业编号
//        $password=md5('123456');//登陆密码md5加密
//        $purpose ='99005';//报文种类
//                     //99001：检查用户名、密码合法性（暂时不能用）
//                     //99002：发送业务报文
//                     //99003：发送已收到回执但未下载过的提回报文查询 
//                     //99004：发送本批次所有收到回执的报文 
//                     //99005：企业提回报文下载
//        if($purpose=='99005'){
//            $packetno='20160429221035077960-800005_00000001';
//        }else{
//            $packetno= date("Ymd", time())."2210".$corpno."00005";//批次号格式：日期（8位：yyyyMMdd)+中心代码（4位：如沈阳2210）+企业机构代码（10位） + 流水号（5位）
//        }
//        $sendtime= date("YmdHis", time());//发送时间 yyyyMMddHHmmss格式
//        $category='50502';//业务类型 
//                     //40501：定期代付；
//                     //40502：定期代收；
//                     //40507：协议上传；
//                     //40508：帐号状态查询；
//                     //50501：实时代付；
//                     //50502：实时代收；
//            if($purpose=='99002'){
//                //汇总信息
//                $no="307221020038";//公司开户行行号
//                $zh="11015479392004";//公司账户
//                $totalmoney="1";//收款总金额
//                $tot=$category.",".$corpno.",".$packetno.","."00".",".$no.",".$zh.","."00604".",".$totalmoney.","."1".",";
//
//                //明细信息
//                $br="\r\n";
//                $fzh="6216910202676810";//付款人账号
//                $fname="雷";//付款人姓名
//                $faddr="呵呵";//付款人联系方式
//                $fmoney="1";//付款金额
//                $xyno="00000000000000000000000000000";//协议号
//                $mingxi="00000001".","."305100000013".","."$fzh".",".iconv("UTF-8","GBK",$fname).",".iconv("UTF-8","GBK",$faddr).",".$fmoney.",".$xyno.",".iconv("UTF-8","GBK","附言").",";
//
//                $str=$mingxi.$br.$tot;
//        //        echo $str;
//                $packetbase64=  base64_encode($str);//报文内容,BASE64格式加密
//                $signyu=$corpno.'|'.$password.'|'.$purpose.'|'.$packetno.'|'.$sendtime.'|'.$category.'|'.$packetbase64.'|';
//            }else{
//                $signyu=$corpno.'|'.$password.'|'.$purpose.'|'.$packetno.'|'.$sendtime.'|'.$category.'|';
//            }
//            //调用JAVA验签操作CURL方式
//
//        //    $curlPost=array(
//        //        'key'=>'ivfbb',
//        //        'sign'=>$str
//        //    );
//            $curlPost="key=ivfbb&sign=".$signyu;
//        $url = 'http://139.196.5.206:82/WebApplication1/test';
//                $ch = curl_init();//初始化curl
//                curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页
//                curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
//                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
//                curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
//                curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
//                $data = curl_exec($ch);//运行curl
//                curl_close($ch);
//            if($data=='1'||$data=='2'||$data=='3'||$data==''){
//                echo json_encode("error");
//            }
//            $sign=$data;//签名 使用CFCA证书签名 签名域为企业编号、企业密码MD5、报文种类、批次号、发送时间、业务类型，
//                     //中间以竖线（|）分隔，末尾以竖线结束
//        // print_r($data);
//            $client = new SoapClient("http://www.sybesc.cn/services/client?wsdl");
//            $opt=array(
//                        'in0'=>$corpno,
//                        'in1'=>$password,
//                        'in2'=>$purpose,
//                        'in3'=>$packetno,
//                        'in4'=>$sendtime,
//                        'in5'=>$category,
//                        'in6'=>$sign,
//                        'in7'=>$packetbase64,
//                    );
//
//            $result = $client->rcvClient($opt);
//            $arr=explode(";", $result->out);
//            
//            echo json_encode($arr);
//           echo base64_decode($arr[1]);
//        
//        
//    }
    
}